﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace Ors.RInterface.Engine.PInvoke
{
    [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi)]
    public struct RStart
    {
        public bool R_Quiet;
        public bool R_Slave;
        public bool R_Interactive;
        public bool R_Verbose;
        public bool LoadSiteFile;
        public bool LoadInitFile;
        public bool DebugInitFile;
        public StartupAction RestoreAction;
        public StartupAction SaveAction;
        public UInt32 vsize;
        public UInt32 nsize;
        public UInt32 max_vsize;
        public UInt32 max_nsize;
        public UInt32 ppsize;
        public UInt32  NoRenviron;
        public IntPtr rhome;               /* R_HOME */
        public IntPtr home;                /* HOME  */
        public FunctionPointers.Blah1 ReadConsole;
        public FunctionPointers.Blah2 WriteConsole;
        public FunctionPointers.Blah3 CallBack;
        public FunctionPointers.Blah4 ShowMessage;
        public FunctionPointers.Blah5 YesNoCancel;
        public FunctionPointers.Blah6 Busy;
        [MarshalAs(UnmanagedType.I4)]
        public UIMode CharacterMode;
        public FunctionPointers.Blah5 WriteConsoleEx; /* used only if WriteConsole is NULL */
    }
}
